/**
 * 根据common模块中提供的组件实现电商网络请求工具类来实现自定义网路请求
 * Created by yangyao on 2017/7/18.
 */
import Vue from 'vue'
import Constants from './common/Constants'
import JzHttpModule from './common/JzHttpModuleV1'
import JzoAuth from './common/JzoAuth'

// 自定义电商配置
const ecConfigs = {
  reqInterceptor: {
    req: function (config) {
      return config
    },
    error: function (error) {
      // TODO 实现请求错误处理
      return Promise.reject(error)
    }
  },
  respInterceptor: {
    resp: function (res) {
      // TODO 全局响应处理
      // console.log(Constants.API_STATUS_CODE)
      if (res.data.statusCode === Constants.API_STATUS_CODE.ACCESS_TOKEN_ERROR) {
        // 认证过期，重新认证
        // JzoAuth.invalidAccessToken()
        if (Vue.prototype.$payWay === 100) {
          JzoAuth.oauth()
        } else {
          JzoAuth.invalidAccessToken()
          JzoAuth.aliyoauth()
          window.location.reload(true)
        }
        // 重新刷新后 达到过期后 重新请求的目的
        // window.location.reload(true)
      }
      return res
    },
    error: function (error) {
      // TODO 实现响应错误处理

      return Promise.reject(error)
    }
  },
  /**
   * 全局自定义头部
   */
  headers: {},
  baseURL: Constants.CommonApiUrl.AURL + '/offlineShopPay/'
}

export default {
  http: JzHttpModule.http,
  get: function (url, params) {
    return JzHttpModule.get(url, params, ecConfigs)
  },
  post: function (url, data) {
    return JzHttpModule.post(url, data, ecConfigs)
  },
  postForm: function (url, data) {
    return JzHttpModule.postForm(url, data, ecConfigs)
  }
}

